package com.moyu.article.service;

import com.moyu.article.domain.post.dto.*;
import com.moyu.article.domain.post.vo.PostListVO;
import com.moyu.article.domain.post.vo.PostQueryVO;
import com.moyu.article.domain.post.vo.PostVO;

import java.util.List;

/**
 * @Author 赵彦博
 * @Date 2025/3/29 19:04
 */
public interface IPostService {
    List<PostVO> getPostList(PostQueryDTO postQueryDTO);

    int updatePost(PostUpdateStateDTO postUpdateStateDTO);

    List<PostListVO> getListByNewest(PostQueryListDTO dto);

    List<PostListVO> getListByHot(PostQueryListDTO dto);

    List<PostListVO> getListByUnanswered(PostQueryListDTO dto);

    int createPost(PostSaveDTO saveDTO);

    Boolean getIsLike(PostIsLikeDTO dto);

    int insertLikeWithPost(PostIsLikeDTO dto);

    int deleteLikeWithPost(PostIsLikeDTO dto);

    PostQueryVO getPostDetail(Long postId);

    boolean checkLikeStatus(Long postId, Long userId);

    void cancelLikePost(Long postId, Long userId);

    void likePost(Long postId, Long userId);

    int deletePost(String postId);

    int updatePostByUser(PostUpdateDTO dto);

    Boolean checkFavoriteStatus(String token, String postId);

    int favoritePost(String token,String postId);

    int cancelFavoritePost(String token,String postId);
}
